package cn.heyige.backend.service;

import cn.heyige.backend.dto.*;

/**
 * 简化版认证服务接口
 * 
 * 专注于核心认证功能，提高系统安全性和性能
 * 
 * @author CodeBuddy
 */
public interface SimpleAuthService {
    
    /**
     * 发送验证码
     * 
     * @param request 验证码请求
     * @return 验证码响应
     */
    SendCodeResponse sendVerificationCode(SendCodeRequest request);
    
    /**
     * 用户注册
     * 
     * @param request 注册请求
     * @return 认证响应
     */
    UserAuthResponse register(UserRegistrationRequestV2 request);
    
    /**
     * 用户登录
     * 
     * @param request 登录请求
     * @return 认证响应
     */
    UserAuthResponse login(UserLoginRequestV2 request);
    
    /**
     * 刷新令牌
     * 
     * @param refreshToken 刷新令牌
     * @return 刷新令牌响应
     */
    RefreshTokenResponse refreshToken(String refreshToken);
    
    /**
     * 用户登出
     * 
     * @param accessToken 访问令牌
     * @param allDevices 是否登出所有设备
     */
    void logout(String accessToken, Boolean allDevices);
    
    /**
     * 验证访问令牌
     * 
     * @param token 访问令牌
     * @return 是否有效
     */
    boolean validateAccessToken(String token);
    
    /**
     * 从令牌中获取用户ID
     * 
     * @param token 访问令牌
     * @return 用户ID
     */
    Integer getUserIdFromToken(String token);
}